// 基础配置
const CONFIG = {
    API_BASE_URL: 'http://127.0.0.1:8000/api',
    WEBSOCKET_BASE_URL: 'ws://127.0.0.1:8000/ws'
};

// 页面加载完成后执行
document.addEventListener('DOMContentLoaded', function() {
    console.log('稳定匹配可视化系统已加载');
    
    // 初始化导航栏活动状态
    initNavigation();
    
    // 根据当前页面执行特定初始化
    const currentPage = getCurrentPage();
    switch(currentPage) {
        case 'index':
            initHomePage();
            break;
        case 'results':
            initResultsPage();
            break;
        case 'process':
            initProcessPage();
            break;
        case 'upload':
            initUploadPage();
            break;
        case 'execute':
            initExecutePage();
            break;
    }
});

// 获取当前页面名称
function getCurrentPage() {
    const path = window.location.pathname;
    const page = path.split('/').pop().replace('.html', '') || 'index';
    return page;
}

// 初始化导航栏
function initNavigation() {
    const navLinks = document.querySelectorAll('.nav-menu a');
    const currentPage = getCurrentPage();
    
    navLinks.forEach(link => {
        link.classList.remove('active');
        const href = link.getAttribute('href').replace('.html', '');
        if (href === currentPage) {
            link.classList.add('active');
        }
    });
}

// 初始化首页
function initHomePage() {
    console.log('初始化首页');
    
    // 为按钮添加点击事件
    const resultBtn = document.querySelector('.btn-primary');
    const processBtn = document.querySelector('.btn-secondary');
    
    if (resultBtn) {
        resultBtn.addEventListener('click', function(e) {
            e.preventDefault();
            window.location.href = 'results.html';
        });
    }
    
    if (processBtn) {
        processBtn.addEventListener('click', function(e) {
            e.preventDefault();
            window.location.href = 'process.html';
        });
    }
}

// 初始化匹配结果页面
function initResultsPage() {
    console.log('初始化匹配结果页面');
    // 后续在此添加结果页面的初始化逻辑
}

// 初始化匹配过程页面
function initProcessPage() {
    console.log('初始化匹配过程页面');
    // 匹配过程页面的初始化在DOMContentLoaded事件中已完成
}

// 初始化数据上传页面
function initUploadPage() {
    console.log('初始化数据上传页面');
    // 后续在此添加上传页面的初始化逻辑
}

// 初始化算法执行页面
function initExecutePage() {
    console.log('初始化算法执行页面');
    // 后续在此添加执行页面的初始化逻辑
}

// 通用API请求函数
async function apiRequest(endpoint, options = {}) {
    const url = `${CONFIG.API_BASE_URL}${endpoint}`;
    
    try {
        const response = await fetch(url, {
            headers: {
                'Content-Type': 'application/json',
                ...options.headers
            },
            ...options
        });
        
        if (!response.ok) {
            throw new Error(`HTTP error! status: ${response.status}`);
        }
        
        return await response.json();
    } catch (error) {
        console.error('API请求失败:', error);
        throw error;
    }
}

// WebSocket连接函数
function connectWebSocket(endpoint) {
    const url = `${CONFIG.WEBSOCKET_BASE_URL}${endpoint}`;
    const socket = new WebSocket(url);
    
    socket.onopen = function(event) {
        console.log('WebSocket连接已建立:', url);
    };
    
    socket.onclose = function(event) {
        console.log('WebSocket连接已关闭:', event);
    };
    
    socket.onerror = function(error) {
        console.error('WebSocket错误:', error);
    };
    
    return socket;
}

// 格式化数字显示
function formatNumber(num) {
    if (num >= 1000000) {
        return (num / 1000000).toFixed(1) + 'M';
    }
    if (num >= 1000) {
        return (num / 1000).toFixed(1) + 'K';
    }
    return num.toString();
}

// 格式化百分比显示
function formatPercentage(decimal) {
    return (decimal * 100).toFixed(1) + '%';
}